function unique(arr) {
    var obj = {};
    // return arr.filter(function(item, index, arr){
    //     console.log(obj);
    //     return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
    // });
    var list=[];
    for(let i=0,len=arr.length;i<len;i++){
        if(!obj[typeof arr[i] + arr[i]]){
            obj[typeof arr[i] + arr[i]]=true;
            list.push( arr[i]);
        }
    }
    console.log(list);
    return list
}
var arr = [1,'1','true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
unique (arr);